package com.meepo.basic.schema.app

import com.meepo.sdk.utils.DeviceUtils
import com.meepo.sdk.utils.location.LocationBrief
import java.io.Serializable

data class Trace(
    val uniqueId: String,
    val timestamp: Long,
    val sessionId: String,
    val app: App,
    val device: Device,
    val location: LocationBrief?
) : Serializable {

    data class App(
        val versionName: String,
        val versionCode: Int,
        val source: String,
        val appId: String
    )

//    data class Location(
//        val lat: Double,
//        val lon: Double,
//        val countryCodeBySim: String
//    )

    data class Device(
        val userAgent: String,
        val ip: String,
        val mac: String,
        val imei: String,
        val imsi: String,
        val phoneNum: String,
        val simOperator: String,
        val androidId: String,
        val brand: String,
        val model: String,
        val sdkVc: Int,
        val osVersion: String,
        val height: Int,
        val width: Int,
        val network: String,
        val language: String,
        val deviceUniqueId: String,
        val isRoot: Boolean,
        val isEmulator: Boolean,
        val isWifiProxy: Boolean,
        val device: String,
        val manufacturer: String,
        val fingerprint: String,
        val memoryInfo: DeviceUtils.MemoryInfo,
        val cpuInfo: DeviceUtils.CPUInfo,
        val board: String,
        val bootloader:String
    )
}